#ifndef STRMBMP_WRITER_H
#define STRMBMP_WRITER_H

#include <string>
#include <filesystem>
#include "stb_image_write.h"
#include <fstream>
#include "fileDefine.h"
#include "AttributeProxy.h"
#include <list>

class StrmBMP_writer
{
  public:
    StrmBMP_writer(std::string OutputPath);
    ~StrmBMP_writer();
    fileHead* getFileHead();
    void BeginInput(uint32_t width,uint32_t height,int16_t pixel);
    void AddImage(char* imageData,uint64_t Time);
    void AddAdditional(int16_t value,uint64_t time);
    void EndInput();
  private:
    uint64_t imageIndex=1;
    std::ofstream oFile;
    fileHead FileHead;
    std::list<additionalBlockHead> additionalList={};
};

#endif
